package cn.iocoder.yudao.module.reading.framework.vo;

import cn.iocoder.yudao.module.reading.framework.util.StaticResourceUrlUtils;
import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;

/**
 * 基础URL转换VO类
 * 提供URL转换的通用方法
 * 
 * @author 李晨
 */
public abstract class BaseUrlConvertVO {

    /**
     * 转换单个URL字段
     * 
     * @param relativePath 相对路径
     * @return 完整URL
     */
    protected String convertUrl(String relativePath) {
        try {
            StaticResourceUrlUtils urlUtils = SpringUtils.getBean(StaticResourceUrlUtils.class);
            return urlUtils.toFullUrl(relativePath);
        } catch (Exception e) {
            // 如果转换失败，返回原始路径
            return relativePath;
        }
    }

    /**
     * 转换多个URL字段
     * 
     * @param relativePaths 相对路径数组
     * @return 完整URL数组
     */
    protected String[] convertUrls(String... relativePaths) {
        try {
            StaticResourceUrlUtils urlUtils = SpringUtils.getBean(StaticResourceUrlUtils.class);
            return urlUtils.toFullUrls(relativePaths);
        } catch (Exception e) {
            // 如果转换失败，返回原始路径
            return relativePaths;
        }
    }

    /**
     * 执行URL转换
     * 子类需要重写此方法来转换具体的URL字段
     */
    public abstract void convertUrls();
}
